Skip to main content

Core API Introduction

The core_api package is the central hub for the building intelligence system's API. It is composed of several key sub-packages that work together to provide a comprehensive set of functionalities for managing building data, devices, and schedules.

Sub-packages

API

This package exposes the core API endpoints for interacting with the system. It includes modules for handling requests related to:

  • Building Data: Endpoints for building-level data (e.g., total consumption, GRAP values).
  • Device Management: Endpoints for device management (e.g., setpoints, schedules, state).
  • Forecast Data: Endpoints for retrieving forecast data (e.g., non-controllable loads).
  • Historic Data: Endpoints for retrieving historical data for various device types.
  • Preferences Data: Endpoints for managing user preferences data.
  • Weather Data: Endpoints for accessing historical and forecast weather data.

Database

This package provides modules for handling all database interactions. It contains specialized query classes for retrieving:

  • Forecast Queries: Handles RPC queries for forecast data.
  • Historic Queries: Retrieves historical data from InfluxDB.
  • Preferences Queries: Manages the retrieval of user preferences.
  • Weather Queries: Retrieves historical and forecast weather data.

Device

This package contains modules for managing and interacting with devices.

  • Helper: Provides the DeviceHelper Enum for device classification and utility functions.
  • Historical: Contains the HistoricalDataReader for retrieving historical device data.
  • Realtime: Features the RealtimeDataManager for managing real-time device interactions.

Schedule

This package offers a framework for managing and monitoring device schedules.

  • Device Scheduler: Implements device-specific scheduling functionality.
  • Models: Defines core data models and enumerations for scheduling.
  • Monitor: Provides capabilities for monitoring and managing schedulers.
  • Weekly Scheduler: Implements a scheduler for managing weekly recurring events.